using System;

namespace Nate.Shared
{
    public class Utils
    {
        public class Options
        {
            public string Label;
            public string ToolTipText;
            public string[] Selections;

            public Options()
            {
                Label = "";
                ToolTipText = "";
                Selections = null;
            }
        }

        static public string[] AlgorithmNames { get { return _factory.Names; } }

        static public Pathfinding.IPathfind Create(string algorithm)
        {
            return _factory.Create(algorithm);
        }


        #region Private Data and Methods

        static private NUtils.Factory<Pathfinding.IPathfind> _factory
        {
            get
            {
                if (null == _factory_internal)
                {
                    _factory_internal = new NUtils.Factory<Pathfinding.IPathfind>();
                }

                return _factory_internal;
           }
        }

        static private NUtils.Factory<Pathfinding.IPathfind> _factory_internal;

        #endregion
    }
}
